From 21eaf26c10865d32f8f6a033a5d1c5ce49b2d910 Mon Sep 17 00:00:00 2001 From: "mjw@wray-m-3.hpl.hp.com" Date: Fri, 13 May 2005 15:01:20 +0000 Subject: [PATCH] bitkeeper revision 1.1402 (4284c140AGr7UEnDR8q3JG62gMR37g) Merge iostream fixes. Signed-off-by: Mike Wray --- .rootkeys | 3 - tools/libxutil/file_stream.c | 25 +-- tools/libxutil/gzip_stream.c | 13 +- tools/libxutil/iostream.h | 44 +++-- tools/libxutil/kernel_stream.c | 49 ++--- tools/libxutil/string_stream.c | 35 +++- tools/xfrd/http.h | 50 ------ tools/xfrd/xdr.c | 316 --------------------------------- tools/xfrd/xdr.h | 30 ---- 9 files changed, 95 insertions(+), 470 deletions(-) delete mode 100644 tools/xfrd/http.h delete mode 100644 tools/xfrd/xdr.c delete mode 100644 tools/xfrd/xdr.h diff --git a/.rootkeys b/.rootkeys index ecf9e91ace..df709f294d 100644 --- a/.rootkeys +++ b/.rootkeys @@ -1085,15 +1085,12 @@ 40e9808eysqT4VNDlJFqsZB2rdg4Qw tools/xfrd/connection.c 40e9808eyXfJUi4E0C3WSgrEXqQ1sQ tools/xfrd/connection.h 40e9808eULGwffNOE4kBrAfZ9YAVMA tools/xfrd/debug.h -411b5139tfKZfWs1LQHmwDR_wjKoxQ tools/xfrd/http.h 40e9808ePADCSKL1YgGCt2TbYPnYkw tools/xfrd/lzi_stream.c 40e9808eDNAdpF71o5teYb9DTT-PRw tools/xfrd/lzi_stream.h 40e9808eQxi0EzTcPJtosrzxEIjA-Q tools/xfrd/marshal.c 40e9808etg13xfRm0Lqd8vY-jHOoTg tools/xfrd/marshal.h 40e9808eCsmywryb036TdtRMJHDMmQ tools/xfrd/select.c 40e9808e99OcM547cKMTfmCVSoWVAw tools/xfrd/select.h -40e9808eF3NVldqRNS5IHM8gbFAvpw tools/xfrd/xdr.c -40e9808ezXzoRHm7pybXU69NtnjimA tools/xfrd/xdr.h 40e9808edpUtf4bJ8IbqClPJj_OvbA tools/xfrd/xen_domain.c 40e9808eHviFFIwdUKOA234uIeifjA tools/xfrd/xen_domain.h 40e9808eIFeV-MDCNyVTNt5NfMPKeQ tools/xfrd/xfrd.c diff --git a/tools/libxutil/file_stream.c b/tools/libxutil/file_stream.c index ca7b9d1680..7adbac0fa7 100644 --- a/tools/libxutil/file_stream.c +++ b/tools/libxutil/file_stream.c @@ -46,18 +46,21 @@ static const IOMethods file_methods = { static IOStream _iostdin = { methods: &file_methods, data: (void*)1, + nofree: 1, }; /** IOStream for stdout. */ static IOStream _iostdout = { methods: &file_methods, data: (void*)2, + nofree: 1, }; /** IOStream for stderr. */ static IOStream _iostderr = { methods: &file_methods, data: (void*)3, + nofree: 1, }; /** IOStream for stdin. */ @@ -152,10 +155,7 @@ static int file_error(IOStream *s){ */ static int file_close(IOStream *s){ int result = 0; - if (s->data){ - result = fclose(get_file(s)); - s->data = (void*)0; - } + result = fclose(get_file(s)); return result; } @@ -164,7 +164,7 @@ static int file_close(IOStream *s){ * @param s file stream */ static void file_free(IOStream *s){ - file_close(s); + // Nothing extra to do - close did it all. } /** Create an IOStream for a stream. @@ -175,8 +175,8 @@ static void file_free(IOStream *s){ IOStream *file_stream_new(FILE *f){ IOStream *io = ALLOCATE(IOStream); if(io){ - io->methods = &file_methods; - io->data = (void*)f; + io->methods = &file_methods; + io->data = (void*)f; } return io; } @@ -191,10 +191,10 @@ IOStream *file_stream_fopen(const char *file, const char *flags){ IOStream *io = 0; FILE *fin = fopen(file, flags); if(fin){ - io = file_stream_new(fin); - if(!io){ - fclose(fin); - } + io = file_stream_new(fin); + if(!io){ + fclose(fin); + } } return io; } @@ -211,8 +211,9 @@ IOStream *file_stream_fdopen(int fd, const char *flags){ FILE *fin = fdopen(fd, flags); if(fin){ io = file_stream_new(fin); - if(!io) + if(!io){ fclose(fin); + } } return io; } diff --git a/tools/libxutil/gzip_stream.c b/tools/libxutil/gzip_stream.c index d3bedbf217..ea14b82580 100644 --- a/tools/libxutil/gzip_stream.c +++ b/tools/libxutil/gzip_stream.c @@ -39,7 +39,7 @@ static int gzip_flush(IOStream *s); /** Methods used by a gzFile* IOStream. */ static const IOMethods gzip_methods = { - read: gzip_read, + read: gzip_read, write: gzip_write, error: gzip_error, close: gzip_close, @@ -108,10 +108,7 @@ static int gzip_error(IOStream *s){ */ static int gzip_close(IOStream *s){ int result = 0; - if (s->data){ - result = gzclose(get_gzfile(s)); - s->data = (void*)0; - } + result = gzclose(get_gzfile(s)); return result; } @@ -120,7 +117,7 @@ static int gzip_close(IOStream *s){ * @param s gzip stream */ static void gzip_free(IOStream *s){ - gzip_close(s); + // Nothing to do - close did it all. } /** Create an IOStream for a gzip stream. @@ -131,8 +128,8 @@ static void gzip_free(IOStream *s){ IOStream *gzip_stream_new(gzFile *f){ IOStream *io = ALLOCATE(IOStream); if(io){ - io->methods = &gzip_methods; - io->data = (void*)f; + io->methods = &gzip_methods; + io->data = (void*)f; } return io; } diff --git a/tools/libxutil/iostream.h b/tools/libxutil/iostream.h index d2fd6fcce1..f41ca56629 100644 --- a/tools/libxutil/iostream.h +++ b/tools/libxutil/iostream.h @@ -33,7 +33,7 @@ #include "allocate.h" -/** End of input return value. */ +/** End of input return value (for getc). */ #define IOSTREAM_EOF -1 /** An input/output abstraction. @@ -82,6 +82,8 @@ struct IOStream { int written; /** Number of bytes read. */ int read; + /** Flag indicating whether not to free when closed. */ + int nofree; }; @@ -107,7 +109,7 @@ extern int IOStream_vprint(IOStream *io, const char *format, va_list args); static inline int IOStream_read(IOStream *stream, void *buf, size_t n){ int result; if(stream->closed){ - result = IOSTREAM_EOF; + result = -EIO; goto exit; } if(!stream->methods || !stream->methods->read){ @@ -132,7 +134,7 @@ static inline int IOStream_read(IOStream *stream, void *buf, size_t n){ static inline int IOStream_write(IOStream *stream, const void *buf, size_t n){ int result; if(stream->closed){ - result = IOSTREAM_EOF; + result = -EIO; goto exit; } if(!stream->methods || !stream->methods->write){ @@ -150,15 +152,14 @@ static inline int IOStream_write(IOStream *stream, const void *buf, size_t n){ /** Flush the stream. * * @param stream stream - * @return 0 on success, IOSTREAM_EOF otherwise + * @return 0 on success, negative error code otherwise */ static inline int IOStream_flush(IOStream *stream){ int result = 0; if(stream->closed){ - result = IOSTREAM_EOF; + result = -EIO; } else if(stream->methods->flush){ result = (stream->methods->flush)(stream); - if(result < 0) result = IOSTREAM_EOF; } return result; } @@ -179,14 +180,25 @@ static inline int IOStream_error(IOStream *stream){ /** Close the stream. * * @param stream to close - * @return 1 for error, 0 otherwise + * @return 0 on success, negative error code otherwise */ static inline int IOStream_close(IOStream *stream){ - int err = 1; + int err = 0; + if(!stream || stream->closed){ + err = -EIO; + goto exit; + } if(stream->methods && stream->methods->close){ err = (stream->methods->close)(stream); stream->closed = 1; } + if(stream->nofree) goto exit; + if(stream->methods && stream->methods->free){ + (stream->methods->free)(stream); + } + *stream = (IOStream){}; + deallocate(stream); + exit: return err; } @@ -199,22 +211,6 @@ static inline int IOStream_is_closed(IOStream *stream){ return stream->closed; } -/** Free the memory used by the stream. - * - * @param stream to free - */ -static inline void IOStream_free(IOStream *stream){ - if(!stream->closed && stream->methods && stream->methods->close){ - (stream->methods->close)(stream); - } - if(stream->methods && stream->methods->free){ - (stream->methods->free)(stream); - } - *stream = (IOStream){}; - deallocate(stream); -} - - /** Print a character to a stream, like fputc(). * * @param stream to print to diff --git a/tools/libxutil/kernel_stream.c b/tools/libxutil/kernel_stream.c index a13051eec8..3c6b55223d 100644 --- a/tools/libxutil/kernel_stream.c +++ b/tools/libxutil/kernel_stream.c @@ -57,10 +57,10 @@ static void kernel_stream_unlock(IOStream *s); /** Methods for a kernel stream. Output only. */ static const IOMethods kernel_methods = { - write: kernel_write, - free: kernel_free, - lock: kernel_stream_lock, - unlock: kernel_stream_unlock, + write: kernel_write, + free: kernel_free, + lock: kernel_stream_lock, + unlock: kernel_stream_unlock, }; /** Shared state for kernel streams. @@ -68,15 +68,16 @@ static const IOMethods kernel_methods = { * shared state and avoid allocating it. */ static const KernelData kernel_data = { - lock: SPIN_LOCK_UNLOCKED, - flags: 0, - buf_n: BUF_N, + lock: SPIN_LOCK_UNLOCKED, + flags: 0, + buf_n: BUF_N, }; /** Stream for kernel printk. */ static IOStream iokernel = { methods: &kernel_methods, data: &kernel_data, + nofree: 1, }; /** Stream for kernel printk. */ @@ -94,7 +95,7 @@ IOStream *iostderr = &iokernel; * @return kernel stream */ IOStream get_stream_kernel(void){ - return iokernel; + return iokernel; } /** Obtain the lock on the stream state. @@ -102,7 +103,7 @@ IOStream get_stream_kernel(void){ * @param kdata stream state */ static inline void KernelData_lock(KernelData *kdata){ - spin_lock_irqsave(&kdata->lock, kdata->flags); + spin_lock_irqsave(&kdata->lock, kdata->flags); } /** Release the lock on the stream state. @@ -110,7 +111,7 @@ static inline void KernelData_lock(KernelData *kdata){ * @param kdata stream state */ static inline void KernelData_unlock(KernelData *kdata){ - spin_unlock_irqrestore(&kdata->lock, kdata->flags); + spin_unlock_irqrestore(&kdata->lock, kdata->flags); } /** Get the stream state. @@ -119,7 +120,7 @@ static inline void KernelData_unlock(KernelData *kdata){ * @return stream state */ static inline KernelData *get_kernel_data(IOStream *s){ - return (KernelData*)s->data; + return (KernelData*)s->data; } /** Obtain the lock on the stream state. @@ -146,14 +147,14 @@ void kernel_stream_unlock(IOStream *s){ * @return result of the print */ static int kernel_write(IOStream *stream, const void *buf, size_t n){ - KernelData *kdata = get_kernel_data(stream); - int k; - k = kdata->buf_n - 1; - if(n < k) k = n; - memcpy(kdata->buf, buf, k); - kdata->buf[k] = '\0'; - printk(kdata->buf); - return k; + KernelData *kdata = get_kernel_data(stream); + int k; + k = kdata->buf_n - 1; + if(n < k) k = n; + memcpy(kdata->buf, buf, k); + kdata->buf[k] = '\0'; + printk(kdata->buf); + return k; } /** Free a kernel stream. @@ -164,11 +165,11 @@ static int kernel_write(IOStream *stream, const void *buf, size_t n){ * @param io stream to free */ static void kernel_free(IOStream *io){ - KernelData *kdata; - if(io == &iokernel) return; - kdata = get_kernel_data(io); - memset(kdata, 0, sizeof(*kdata)); - deallocate(kdata); + KernelData *kdata; + if(io == &iokernel) return; + kdata = get_kernel_data(io); + memset(kdata, 0, sizeof(*kdata)); + deallocate(kdata); } #endif /* __KERNEL__ */ diff --git a/tools/libxutil/string_stream.c b/tools/libxutil/string_stream.c index a535c922ff..907e7d70ee 100644 --- a/tools/libxutil/string_stream.c +++ b/tools/libxutil/string_stream.c @@ -28,11 +28,13 @@ static int string_error(IOStream *io); static int string_close(IOStream *io); static void string_free(IOStream *io); +static int string_write(IOStream *io, const void *msg, size_t n); +static int string_read(IOStream *io, void *buf, size_t n); /** Methods for a string stream. */ static IOMethods string_methods = { - //print: string_print, - //getc: string_getc, + read: string_read, + write: string_write, error: string_error, close: string_close, free: string_free, @@ -47,6 +49,28 @@ static inline StringData *get_string_data(IOStream *io){ return (StringData*)io->data; } +static int string_write(IOStream *io, const void *msg, size_t n){ + StringData *data = get_string_data(io); + int k; + + k = data->end - data->out; + if(n > k) n = k; + memcpy(data->out, msg, n); + data->out += n; + return n; +} + +static int string_read(IOStream *io, void *buf, size_t n){ + StringData *data = get_string_data(io); + int k; + + k = data->end - data->in; + if(n > k) n = k; + memcpy(buf, data->in, k); + data->in += n; + return n; +} + /** Test if a string stream has an error. * * @param io string stream @@ -70,7 +94,6 @@ static int string_close(IOStream *io){ } /** Free a string stream. - * The stream must have been allocated, not statically created. * The stream state is freed, but the underlying string is not. * * @param io string stream @@ -90,6 +113,9 @@ IOMethods *string_stream_get_methods(void){ } /** Initialise a string stream, usually from static data. + * If the stream and StringData should be freed when + * the stream is closed, unset io->nofree. + * The string is not freed on close. * * @param io address of IOStream to fill in * @param data address of StringData to fill in @@ -107,10 +133,12 @@ void string_stream_init(IOStream *io, StringData *data, char *s, int n){ memzero(io, sizeof(*io)); io->methods = &string_methods; io->data = data; + io->nofree = 1; } } /** Allocate and initialise a string stream. + * The stream is freed on close, but the string is not. * * @param s string to use * @param n length of the string @@ -123,6 +151,7 @@ IOStream *string_stream_new(char *s, int n){ if(data && io){ ok = 1; string_stream_init(io, data, s, n); + io->nofree = 0; } if(!ok){ deallocate(data); diff --git a/tools/xfrd/http.h b/tools/xfrd/http.h deleted file mode 100644 index 711ccc9787..0000000000 --- a/tools/xfrd/http.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef _XFRD_HTTP_H_ -#define _XFRD_HTTP_H_ - -enum { - HTTP_OK = 200, - HTTP_CREATED = 201, - HTTP_ACCEPTED = 202, - HTTP_NON_AUTHORITATIVE_INFORMATION = 203, - HTTP_NO_CONTENT = 204, - HTTP_RESET_CONTENT = 205, - HTTP_PARTIAL_CONTENT = 206, - HTTP_MULTI_STATUS = 207, - - HTTP_MULTIPLE_CHOICE = 300, - HTTP_MOVED_PERMANENTLY = 301, - HTTP_FOUND = 302, - HTTP_SEE_OTHER = 303, - HTTP_NOT_MODIFIED = 304, - HTTP_USE_PROXY = 305, - HTTP_TEMPORARY_REDIRECT = 307, - - HTTP_BAD_REQUEST = 400, - HTTP_UNAUTHORIZED = 401, - HTTP_PAYMENT_REQUIRED = 402, - HTTP_FORBIDDEN = 403, - HTTP_NOT_FOUND = 404, - HTTP_NOT_ALLOWED = 405, - HTTP_NOT_ACCEPTABLE = 406, - HTTP_PROXY_AUTH_REQUIRED = 407, - HTTP_REQUEST_TIMEOUT = 408, - HTTP_CONFLICT = 409, - HTTP_GONE = 410, - HTTP_LENGTH_REQUIRED = 411, - HTTP_PRECONDITION_FAILED = 412, - HTTP_REQUEST_ENTITY_TOO_LARGE = 413, - HTTP_REQUEST_URI_TOO_LONG = 414, - HTTP_UNSUPPORTED_MEDIA_TYPE = 415, - HTTP_REQUESTED_RANGE_NOT_SATISFIABLE = 416, - HTTP_EXPECTATION_FAILED = 417, - - HTTP_INTERNAL_SERVER_ERROR = 500, - HTTP_NOT_IMPLEMENTED = 501, - HTTP_BAD_GATEWAY = 502, - HTTP_SERVICE_UNAVAILABLE = 503, - HTTP_GATEWAY_TIMEOUT = 504, - HTTP_VERSION_NOT_SUPPORTED = 505, - HTTP_INSUFFICIENT_STORAGE_SPACE = 507, - HTTP_NOT_EXTENDED = 510, -}; -#endif /* ! _XFRD_HTTP_H_ */ diff --git a/tools/xfrd/xdr.c b/tools/xfrd/xdr.c deleted file mode 100644 index c4af04b975..0000000000 --- a/tools/xfrd/xdr.c +++ /dev/null @@ -1,316 +0,0 @@ -#include -#include "xdr.h" - -#define MODULE_NAME "XDR" -//#define DEBUG 1 -#undef DEBUG -#include "debug.h" - -/** @file - * XDR packer/unpacker for elements. - * - * string -> [T_STRING] [len:u16] - * atom -> [T_ATOM] [len:u16] - * uint -> [T_UINT] [value] - * cons -> [T_LIST] {1 elt}* 0 - * null -> [T_NULL] - * none -> [T_NONE] - * bool -> [T_BOOL] { 0:u8 | 1:u8 } - * - * types packed as u16. - * - * So (a b c) -> [T_CONS] a [T_CONS] b [T_CONS] c [T_NULL] - * () -> [T_NULL] - */ - -int pack_bool(IOStream *io, int x){ - int err=0; - //dprintf("> x=%d\n", x); - err = IOStream_print(io, "%c", 0xff & x); - if(err > 0) err = 0; - //dprintf("< err=%d\n", err); - return err; -} - -int unpack_bool(IOStream *io, int *x){ - int err = 0; - int c; - //dprintf(">\n"); - c = IOStream_getc(io); - *x = (c < 0 ? 0 : c); - err = IOStream_error(io); - if(c < 0 && !err) err = -EIO; - //dprintf("< err=%d x=%d\n", err, *x); - return err; -} - -int pack_ushort(IOStream *io, unsigned short x){ - int err=0; - //dprintf("> x=%u\n", x); - err = IOStream_print(io, "%c%c", - 0xff & (x >> 8), - 0xff & (x )); - if(err > 0) err = 0; - //dprintf("< err=%d\n", err); - return err; -} - -int unpack_ushort(IOStream *io, unsigned short *x){ - int err = 0; - int i, c = 0; - //dprintf(">\n"); - *x = 0; - for(i = 0; i< 2; i++){ - c = IOStream_getc(io); - if(c < 0) break; - *x <<= 8; - *x |= (0xff & c); - } - err = IOStream_error(io); - - if(c < 0 && !err) err = -EIO; - //dprintf("< err=%d x=%u\n", err, *x); - return err; -} - -int pack_type(IOStream *io, unsigned short x){ - return pack_ushort(io, x); -} - -int unpack_type(IOStream *io, unsigned short *x){ - return unpack_ushort(io, x); -} - -int pack_uint(IOStream *io, unsigned int x){ - int err=0; - //dprintf("> x=%u\n", x); - err = IOStream_print(io, "%c%c%c%c", - 0xff & (x >> 24), - 0xff & (x >> 16), - 0xff & (x >> 8), - 0xff & (x )); - if(err > 0) err = 0; - //dprintf("< err=%d\n", err); - return err; -} - -int unpack_uint(IOStream *io, unsigned int *x){ - int err = 0; - int i, c = 0; - //dprintf(">\n"); - *x = 0; - for(i = 0; i< 4; i++){ - c = IOStream_getc(io); - if(c < 0) break; - *x <<= 8; - *x |= (0xff & c); - } - err = IOStream_error(io); - if(c < 0 && !err) err = -EIO; - //dprintf("< err=%d x=%u\n", err, *x); - return err; -} - -int pack_string(IOStream *io, Sxpr x){ - int err = 0; - unsigned short n = 0xffff & string_length(x); - char *s = string_string(x); - int i; - //dprintf("> n=%d s=%s\n", n, s); - err = pack_ushort(io, n); - if(err) goto exit; - for(i = 0; i < n; i++){ - err = IOStream_print(io, "%c", s[i]); - if(err < 0) break; - } - if(err > 0) err = 0; - exit: - //dprintf("< err=%d\n", err); - return err; -} - -int unpack_string(IOStream *io, Sxpr *x){ - int err; - unsigned short n; - int i, c = 0; - char *s; - Sxpr val = ONONE; - - //dprintf(">\n"); - err = unpack_ushort(io, &n); - if(err) goto exit; - val = halloc(n+1, T_STRING); - if(NOMEMP(val)){ - err = -ENOMEM; - goto exit; - } - s = string_string(val); - for(i=0; i\n"); - for(l = x; CONSP(l); l = CDR(l)){ - err = pack_bool(io, 1); - if(err) goto exit; - err = pack_sxpr(io, CAR(l)); - if(err) goto exit; - } - err = pack_bool(io, 0); - exit: - //dprintf("< err=%d\n", err); - return err; -} - -int unpack_cons(IOStream *io, Sxpr *x){ - int err = 0; - int more = 0; - Sxpr u = ONONE, v = ONONE, val = ONULL; - - dprintf(">\n"); - while(1){ - err = unpack_bool(io, &more); - if(err) goto exit; - if(!more){ - //IOStream_print(iostdout, "unpack_cons 1 val="); - ////objprint(iostdout, val, 0); - IOStream_print(iostdout, "\n"); - - val = nrev(val); - - //IOStream_print(iostdout, "unpack_cons 2 val="); - //objprint(iostdout, val, 0); - //IOStream_print(iostdout, "\n"); - - break; - } - err = unpack_sxpr(io, &u); - if(err) goto exit; - v = cons_new(u, val); - if(NOMEMP(v)){ - err = -ENOMEM; - objfree(u); - goto exit; - } - val = v; - } - exit: - if(err){ - objfree(val); - val = ONONE; - } - *x = val; - dprintf("< err=%d\n", err); - return err; -} - -int pack_sxpr(IOStream *io, Sxpr x){ - int err = 0; - unsigned short type = get_type(x); - //dprintf(">\n"); - //objprint(iostdout, x, 0); - //IOStream_print(iostdout, "\n"); - - err = pack_type(io, type); - if(err) goto exit; - switch(type){ - case T_NULL: - break; - case T_NONE: - break; - case T_BOOL: - err = pack_bool(io, get_ul(x)); - break; - case T_CONS: - err = pack_cons(io, x); - break; - case T_ATOM: - err = pack_string(io, OBJ_ATOM(x)->name); - break; - case T_STRING: - err = pack_string(io, x); - break; - case T_UINT: - err = pack_uint(io, get_ul(x)); - break; - default: - err = -EINVAL; - IOStream_print(iostderr, "%s> invalid type %d\n", __FUNCTION__, type); - break; - } - exit: - //dprintf("< err=%d\n", err); - return err; -} - -int unpack_sxpr(IOStream *io, Sxpr *x){ - int err = 0; - unsigned short type; - unsigned int u; - Sxpr val = ONONE, y; - - //dprintf(">\n"); - err = unpack_type(io, &type); - if(err) goto exit; - switch(type){ - case T_NULL: - val = ONULL; - break; - case T_NONE: - val = ONONE; - break; - case T_CONS: - err = unpack_cons(io, &val); - break; - case T_BOOL: - err = unpack_bool(io, (int *)&u); - if(err) goto exit; - val = (u ? OTRUE : OFALSE); - break; - case T_ATOM: - err = unpack_string(io, &y); - if(err) goto exit; - val = intern(string_string(y)); - objfree(y); - break; - case T_STRING: - err = unpack_string(io, &val); - break; - case T_UINT: - err = unpack_uint(io, &u); - if(err) goto exit; - val = OBJI(type, u); - break; - default: - err = -EINVAL; - IOStream_print(iostderr, "%s> invalid type %d\n", __FUNCTION__, type); - break; - } - exit: - *x = (err ? ONONE : val); - //IOStream_print(iostdout, "sxpr="); - //objprint(iostdout, *x, 0); - //IOStream_print(iostdout, "\n"); - //dprintf("< err=%d\n", err); - return err; -} diff --git a/tools/xfrd/xdr.h b/tools/xfrd/xdr.h deleted file mode 100644 index 793cd34a29..0000000000 --- a/tools/xfrd/xdr.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef _XUTIL_XDR_H_ -#define _XUTIL_XDR_H_ -#include "iostream.h" -#include "sxpr.h" - -int pack_type(IOStream *io, unsigned short x); - -int unpack_type(IOStream *io, unsigned short *x); - -int pack_bool(IOStream *io, int x); - -int unpack_bool(IOStream *io, int *x); - -int pack_uint(IOStream *out, unsigned int x); - -int unpack_uint(IOStream *in, unsigned int *x); - -int pack_string(IOStream *out, Sxpr x); - -int unpack_string(IOStream *in, Sxpr *x); - -int pack_cons(IOStream *out, Sxpr x); - -int unpack_cons(IOStream *in, Sxpr *x); - -int pack_sxpr(IOStream *out, Sxpr x); - -int unpack_sxpr(IOStream *in, Sxpr *x); - -#endif /* _XUTIL_XDR_H_ */ -- 2.30.2